export interface InterShardMemory {
    /**
     * 当前shard的名字
     */
    shardName: string
    /**
     * 爬虫记忆
     */
    creeps: {
        [creepName: string]: CreepShardData
    }
    /**
     * 用过的id
     */
    usedId: {
        [id: string]: number
    }
}

/**
 * 爬虫跨shard数据
 */
export interface CreepShardData {
    // id
    id: string
    // 数据要传往的shard
    toShard: string
    // 爬虫记忆
    memory: CreepMemory
    // 超时，超时自动删除
    timeout: number
}

/**
 * 跨shard需要的数据
 */
export type CrossShardPath = PortalData[]

/**
 * 星门数据
 */
export interface PortalData {
    shard: string
    roomName: string
    x: number
    y: number
}

declare global {
    namespace NodeJS {
        interface Global {
            interShardMemory: InterShardMemory
        }
    }
}
